Imports System.Data.SqlClient
Imports System
Imports System.Configuration
Public Class DPeriododeLicencia
    Dim ocnn As New DConexion
    Public Function cargarPeriodoDeLicencia(ByVal periodo As Entidades.EPeriododeLicencia) As Boolean
        Dim com As New SqlCommand
        Dim band As Boolean
        Try
            ocnn.abrirConexion()
            com.Connection = ocnn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "CargarPeriodoDeLicencia"
            com.Parameters.AddWithValue("@docente", periodo.Legajo)
            com.Parameters.AddWithValue("@titulo", periodo.Titulo)
            com.Parameters.AddWithValue("@capitulo", periodo.Capitulo)
            com.Parameters.AddWithValue("@articulo", periodo.Articulo)
            com.Parameters.AddWithValue("@fechaalta", periodo.FechaAlta)
            com.Parameters.AddWithValue("@fechabaja", periodo.FechaBaja)
            com.Parameters.AddWithValue("@estado", periodo.Estado)
            com.ExecuteNonQuery()
            band = True
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
        ocnn.cerrarConexion()
        Return band
    End Function

    Public Function modificarPeriodo(ByVal periodo As Entidades.EPeriododeLicencia, ByVal fechaA As Date, ByVal fechaB As Date) As Boolean
        Dim com As New SqlCommand
        Dim band As Boolean
        Try
            ocnn.abrirConexion()
            com.Connection = ocnn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "ModificarPeriodoLic"
            com.Parameters.AddWithValue("@docente", periodo.Legajo)
            com.Parameters.AddWithValue("@titulo", periodo.Titulo)
            com.Parameters.AddWithValue("@capitulo", periodo.Capitulo)
            com.Parameters.AddWithValue("@articulo", periodo.Articulo)
            com.Parameters.AddWithValue("@FechaAlta", periodo.FechaAlta)
            com.Parameters.AddWithValue("@FechaBaja", periodo.FechaBaja)
            com.Parameters.AddWithValue("@estado", periodo.Estado)
            com.Parameters.AddWithValue("@fechaA", fechaA)
            com.Parameters.AddWithValue("@fechaB", fechaB)
            com.ExecuteNonQuery()
            band = True
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
        ocnn.cerrarConexion()
        Return band
    End Function

    Public Function activarSiNoPeriodoLic(ByVal periodo As Entidades.EPeriododeLicencia) As Boolean
        Dim com As New SqlCommand
        Dim band As Boolean
        Try
            ocnn.abrirConexion()
            com.Connection = ocnn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "ActivarSiNoPeriodoLic"
            com.Parameters.AddWithValue("@docente", periodo.Legajo)
            com.Parameters.AddWithValue("@titulo", periodo.Titulo)
            com.Parameters.AddWithValue("@capitulo", periodo.Capitulo)
            com.Parameters.AddWithValue("@articulo", periodo.Articulo)
            com.Parameters.AddWithValue("@fechaalta", periodo.FechaAlta)
            com.Parameters.AddWithValue("@estado", periodo.Estado)
            com.ExecuteNonQuery()
            band = True
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
        ocnn.cerrarConexion()
        Return band
    End Function

    Public Function buscarLicenciaPorLegajo(ByVal docente As Entidades.EPersonal) As List(Of Entidades.EPeriododeLicencia)
        Dim com As New SqlCommand
        Dim coleccion As New List(Of Entidades.EPeriododeLicencia)
        Try
            ocnn.abrirConexion()
            com.Connection = ocnn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "BuscarLicenciaxLegajo"
            com.Parameters.AddWithValue("@Legajo", docente.Legajo)
            Dim dr As SqlDataReader
            dr = com.ExecuteReader
            Do While dr.Read
                Dim periodo As New Entidades.EPeriododeLicencia
                periodo.Legajo = dr("docente")
                periodo.Titulo = dr("titulo")
                periodo.Capitulo = dr("capitulo")
                periodo.Articulo = dr("articulo")
                periodo.FechaAlta = dr("fechaalta")
                periodo.FechaBaja = dr("fechabaja")
                periodo.Estado = dr("estado")
                coleccion.Add(periodo)
                periodo = Nothing
            Loop
            dr.Close()
            ocnn.cerrarConexion()
            Return coleccion
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            coleccion = Nothing
        End Try
    End Function

    Public Function buscarLicenciaPorLegajo(ByVal docente As Entidades.EPersonal, ByVal cond As Boolean) As List(Of Entidades.EPeriododeLicencia)
        Dim com As New SqlCommand
        Dim coleccion As New List(Of Entidades.EPeriododeLicencia)
        Try
            ocnn.abrirConexion()
            com.Connection = ocnn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "BuscarLicenciaxLegajoyCond"
            com.Parameters.AddWithValue("@Legajo", docente.Legajo)
            com.Parameters.AddWithValue("@estado", cond)
            Dim dr As SqlDataReader
            dr = com.ExecuteReader
            Do While dr.Read
                Dim periodo As New Entidades.EPeriododeLicencia
                periodo.Legajo = dr("docente")
                periodo.Titulo = dr("titulo")
                periodo.Capitulo = dr("capitulo")
                periodo.Articulo = dr("articulo")
                periodo.FechaAlta = dr("fechaalta")
                periodo.FechaBaja = dr("fechabaja")
                periodo.Estado = dr("estado")
                coleccion.Add(periodo)
                periodo = Nothing
            Loop
            dr.Close()
            ocnn.cerrarConexion()
            Return coleccion
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            coleccion = Nothing
        End Try
    End Function

    Public Function existePeriodoLic(ByVal periodo As Entidades.EPeriododeLicencia) As Boolean
        Dim Cmd As New SqlCommand
        Dim resul As Boolean = False
        Try
            ocnn.abrirConexion()
            Cmd.Connection = ocnn.obtenerConexion
            Cmd.CommandType = CommandType.StoredProcedure
            Cmd.CommandText = "BuscarPeriododeLicencia"
            Cmd.Parameters.AddWithValue("@legajo", periodo.Legajo)
            Cmd.Parameters.AddWithValue("@titulo", periodo.Legajo)
            Cmd.Parameters.AddWithValue("@capitulo", periodo.Legajo)
            Cmd.Parameters.AddWithValue("@articulo", periodo.Legajo)
            Cmd.Parameters.AddWithValue("@fechaAlta", periodo.Legajo)
            Dim dr As SqlDataReader
            dr = Cmd.ExecuteReader
            dr.Read()
            If dr.HasRows Then
                resul = True
            End If
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
        ocnn.cerrarConexion()
        Return resul
    End Function
End Class
